package com.example.demo2;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;

import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.ImageLoader;
import com.android.volley.toolbox.ImageRequest;
import com.android.volley.toolbox.Volley;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import javax.net.ssl.HttpsURLConnection;

public class MainActivity extends AppCompatActivity {
    private static final int URL_IMG = 1001 ;
    ImageView view;
    private Button btn1;
    private Button btn2;
    private Button btn3;
    private Handler handler;
    private RequestQueue requestQueue;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final String  strUrl = "http://www.gdcp.cn/UploadFile/2/2019/1/9/20191916463559.jpg";

        requestQueue = Volley.newRequestQueue(MainActivity.this);

        final Handler handler = new Handler(new Handler.Callback() {
            @Override
            public boolean handleMessage(Message msg) {
                if (msg.what==URL_IMG){
                    Bitmap bitmap = (Bitmap) msg.obj;
                    view.setImageBitmap(bitmap);
                }
                return false;
            }
        });

        btn1 = findViewById(R.id.btn_httpUrlConnection);
        btn2 = findViewById(R.id.btn_imageRequest);
        btn3 = findViewById(R.id.btn_imageLoader);
        view = findViewById(R.id.view_img);

        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


               new Thread(new Runnable() {
                   @Override
                   public void run() {
                       try {
                           URL url = new URL(strUrl);
                           HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
                           InputStream inputStream = httpURLConnection.getInputStream();
                           Bitmap bitmap = BitmapFactory.decodeStream(inputStream);

                           Message message = Message.obtain();
                           message.what = URL_IMG;
                           message.obj = bitmap;
                           handler.sendMessage(message);



                       } catch (MalformedURLException e) {
                           e.printStackTrace();
                       } catch (IOException e) {
                           e.printStackTrace();
                       }
                   }
               }).start();
            }
        });
        btn2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ImageRequest imageRequest = new ImageRequest(strUrl, new Response.Listener<Bitmap>() {
                    @Override
                    public void onResponse(Bitmap bitmap) {
                         view.setImageBitmap(bitmap);
                    }
                }, 0, 0, Bitmap.Config.RGB_565, new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError volleyError) {

                    }
                });
                requestQueue.add(imageRequest);
            }
        });
      btn3.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
              ImageLoader imageLoader = new ImageLoader(requestQueue,new BitmapCache());
              ImageLoader.ImageListener listener = ImageLoader.getImageListener(
                      view,
                      R.drawable.jiazai,
                      R.drawable.error
                      );
              imageLoader.get(strUrl,listener);
          }
      });

    }
}
